package com.clyme.expediente.daoImpl;

import com.clyme.expediente.dao.UbigeoDao;
import com.clyme.expediente.entidad.Ubigeo;
import com.clyme.expediente.utilitarios.DataBaseException;
import com.clyme.expediente.utilitarios.IConexion;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Luis Alonso Ballena Garcia
 */
public class UbigeoDaoImpl extends HibernateImpl<Ubigeo> implements UbigeoDao<Ubigeo>{

    public UbigeoDaoImpl(IConexion conexion) {
        super(conexion);
    }
    
    @Override
    public Ubigeo getUbigeo(String codigoDep, String codigoProv, String codigoDist) {
        Ubigeo ubigeo = null;
        Session session = null;
        try{
            session = conexion.getSession();
            Criteria  criteria = session.createCriteria(Ubigeo.class,"ubi");
            criteria.add(Restrictions.eq("ubi.codDepartamento", codigoDep));
            criteria.add(Restrictions.eq("ubi.codProvincia", codigoProv));
            criteria.add(Restrictions.eq("ubi.codDistrito", codigoDist));
            criteria.addOrder(Order.asc("ubi.codDepartamento"));
            ubigeo = (Ubigeo) criteria.uniqueResult();
        }catch(HibernateException e){
            e.printStackTrace();
            throw  new DataBaseException("Error en obtener el Ubigeo");
        }
        return ubigeo;
    }

}
